﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace UsersForms
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        /* 注册
         * 
         * 思路：
         * 1.要判断用户输入的用户名和密码是否为空，防止不输入，直接点击登入提示用户名和密码不能为空
         * 2.我们不是要输入两次密码吗，一次是确认密码，我们要判断这两次输入的是否相等
         * 3.当我们在注册的时候，肯定不能和已经注册过的重复对吧，所以我们这里也要来一个查询，看看是否已经存在，存在就
         * 注册失败，不存在就注册成功
         */
        private void button1_Click(object sender, EventArgs e)
        {
            var name = textBox1.Text;
            var pwd = textBox2.Text;
            var newPwd = textBox3.Text;

            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text!="")//让用户输入的name、pwd和newPwd不能为空
            {
                if (pwd == newPwd)//判断密码和确定密码是否相等
                {
                    /*
                     * 前面的都是判断，现在开始正确的注册
                     * 
                     * 下面三行代码和form1(登入界面)的查询方法一样，忘了可以回过去看看
                     */

                    string sql = string.Format("select * from Student0002 where s_name='{0}' and s_pwd='{1}'", name, pwd);

                    DataTable mytable = DBHelper.Select(sql);


                    var myrow = mytable.Rows.Count;


                    if (myrow == 1)//判断是否存在用户名和密码都相同的用户,存在的话注册失败
                    {

                        MessageBox.Show("已存在用户名！！");
                    }
                    else
                    {
                        //没有重复的情况下，我们来把注册信息用insert插入到数据库当中
                        string sql2 = string.Format("insert into Student0002 values('{0}','{1}')", name, pwd);//我的是Student0002表

                        var n = DBHelper.DeleteUpdateInsert(sql2);//这个是我们包装连接数据中的第二个方法，它会返回影响的行数，我们用n去接收它，怎么实现的可以回过去看看

                        if (n >= 1)//这里判断影响的行数是否大于等于1,true的话，说明插入成功，我们就显示注册成功
                        {
                            MessageBox.Show("注册成功");
                            this.Close();//注册成功的情况下，关闭注册窗口，隐藏和关闭是不一的，关闭之后是没有了，要重新new，隐藏了是可以重新显示出来
                        }
                        else
                        {
                            MessageBox.Show("注册失败");
                        }
                    }

                }
                else
                {
                    MessageBox.Show("两次输入的密码不相等，请重新输入");
                }
            }
            else
            {
                MessageBox.Show("注册信息不能为空");
            }
        }


        /*
         我们直接关闭注册界面就好了
             */
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
